package com.oct.ywsc.core.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Data
@ConfigurationProperties(prefix = "spring.kafka.consumer")
@Configuration
public class KafkaConsumerConfig extends KafkaSaslConfig {


    /**
     *       bootstrap-servers:
     *         - 10.0.11.47:9002
     *       # 自动提交的时间间隔 在spring boot 2.X 版本是值的类型为Duration 需要符合特定的格式，如1S,1M,2H,5D
     *       auto-commit-interval: 1S
     *       # 该属性指定了消费者在读取一个没有偏移量的分区或者偏移量无效的情况下该作何处理：latest（默认值）在偏移量无效的情况下，消费者将从最新的记录开始读取数据（在消费者启动之后生成的记录）earliest ：在偏移量无效的情况下，消费者将从起始位置读取分区的记录
     *       auto-offset-reset: latest
     *       # 是否自动提交偏移量，默认值是true,为了避免出现重复数据和数据丢失，可以把它设置为false,然后手动提交偏移量
     *       enable-auto-commit: false
     *       # 键的反序列化方式
     *       key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
     *       # 值的反序列化方式
     *       value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
     *       # 批量一次最大拉取数据量
     *       max-poll-records: 65535
     *       #监测消费端心跳时间
     *       heartbeat-interval: 30000
     */
    private List<String> bootstrapServers;

    private Integer autoCommitInterval;
    private String autoOffsetReset;
    private Boolean enableAutoCommit;
    private String keyDeserializer;
    private String valueDeserializer;
    private Integer maxPollRecords;
    private Integer heartbeatInterval;

    private Integer maxPollIntervalMs;
        // 默认的消费组ID
    private String groupId;

    private List<String> topicNames;

}
